home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / src / commands / id.c < prev    next >
C/C++ Source or Header  |  1990-07-23  |  1KB  |  53 lines

  1. /* id - return uid and gid        Author: John J. Marco */
  2.  
  3.  
  4. /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
  5. /*         ----- id.c -----                    */
  6. /* Id - get real and effective user id and group id            */
  7. /* Author: John J. Marco                        */
  8. /*       pa1343@sdcc15.ucsd.edu                    */
  9. /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
  10.  
  11. #include <sys/types.h>
  12. #include <pwd.h>
  13. #include <grp.h>
  14. #include <stdio.h>
  15.  
  16. main()
  17. {
  18.   struct passwd *pwd;
  19.   struct passwd *getpwuid();
  20.   struct group *grp;
  21.   struct group *getgrgid();
  22.   int uid, gid, euid, egid;
  23.  
  24.   uid = getuid();
  25.   gid = getgid();
  26.   euid = geteuid();
  27.   egid = getegid();
  28.  
  29.   if ((pwd = getpwuid(uid)) == (struct passwd *) NULL)
  30.     printf("%s%d%s", "uid=", uid, " ");
  31.   else
  32.     printf("%s%d%s%s%s", "uid=", uid, "(", pwd->pw_name, ") ");
  33.  
  34.   if ((grp = getgrgid(gid)) == (struct group *) NULL)
  35.     printf("%s%d%s", "gid=", gid, " ");
  36.   else
  37.     printf("%s%d%s%s%s", "gid=", gid, "(", grp->gr_name, ") ");
  38.  
  39.   if (uid != euid)
  40.     if ((pwd = getpwuid(euid)) != (struct passwd *) NULL)
  41.         printf("%s%d%s%s%s", "euid=", euid, "(", pwd->pw_name, ") ");
  42.     else
  43.         printf("%s%d%s", "euid=", euid, " ");
  44.  
  45.   if (gid != egid)
  46.     if ((grp = getgrgid(egid)) != (struct group *) NULL)
  47.         printf("%s%d%s%s%s", "egid=", egid, "(", grp->gr_name, ") ");
  48.     else
  49.         printf("%s%d%s", "egid=", egid, " ");
  50.  
  51.   printf("\n");
  52. }
  53.